WSL 中调用图形界面

2022 年 9 月 12 日 星期一(已编辑)
/
40

WSL 中调用图形界面

最近需要在 WSL 上运行一些图形化界面,虽然目前 Windows 11 已经原生支持了 WSLg,但是 Windows 11 自身的诸多 Bug 属实让我不想升级上去,已经升了两次退回两次了。

2022-09-12 更新 WSL2 时遇到的问题

主要问题就在于 WSL2 使用了虚拟网卡,以下的 IP 获取方式可能只能拿到 WSL 的 IP,但是会出现一些问题,比如通信超时【什么错误都没有,但是 Xlaunch 就是没有窗口会弹出来】。具体的问题解决可以看这篇 Stackoverflow

解决方法就是改成这句:

export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk '{print $4}'):0.0

步骤【WSL1 可用】

  1. 在 Windows 上安装 VcXsrv
  2. 启动 WSL,在 .bashrc 最后一行加入以下命令
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
  1. 使用 apt install x11-apps -y && xeyes 进行测试,如果弹出窗口则成功

PS

  1. 遇到了奇怪的问题,调用 Pangolin 的时候出现了 Framebuffer 的错误,解决方法参考这里。大概就是: a. 修改 Pangolin 源码:~/Pangolin/src/display/device/display_x11.cpp b. 找到大概 110 行处,将GLXFBConfig* fbc = glXChooseFBConfig(display, DefaultScreen(display), visual_attribs, &fbcount);改为GLXFBConfig* fbc = glXGetFBConfigs(display, DefaultScreen(display), &fbcount); c. 重新编译并安装

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...